home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 July & August / PCWorld_2006-07-08_cd.bin / komunikace / apache / apache_2[1].2.2-win32-x86-no_ssl.msi / Data1.cab / _7A2208C72A30392B9E44964BCEF2162A < prev    next >
Extensible Markup Language  |  2006-01-15  |  24KB  |  503 lines

  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="ko" xml:lang="ko"><head><!--
  4.         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  5.               This file is generated from xml source: DO NOT EDIT
  6.         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
  7.       -->
  8. <title>╛╞╞──í ┼⌡┼Σ╕«╛≤: CGI╕ª ╗τ┐δ╟╤ ╡┐└√ ╞Σ└╠┴÷ ╗²╝║ - Apache HTTP Server</title>
  9. <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
  10. <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
  11. <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
  12. <link href="../images/favicon.ico" rel="shortcut icon" /></head>
  13. <body id="manual-page"><div id="page-header">
  14. <p class="menu"><a href="../mod/">╕≡╡Γ</a> | <a href="../mod/directives.html">┴÷╜├╛ε╡Θ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">┐δ╛ε</a> | <a href="../sitemap.html">╗τ└╠╞«╕╩</a></p>
  15. <p class="apache">Apache HTTP Server Version 2.2</p>
  16. <img alt="" src="../images/feather.gif" /></div>
  17. <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div>
  18. <div id="path">
  19. <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.2</a> > <a href="./">How-To / Tutorials</a></div><div id="page-content"><div id="preamble"><h1>╛╞╞──í ┼⌡┼Σ╕«╛≤: CGI╕ª ╗τ┐δ╟╤ ╡┐└√ ╞Σ└╠┴÷ ╗²╝║</h1>
  20. <div class="toplang">
  21. <p><span>░í┤╔╟╤ ╛≡╛ε: </span><a href="../en/howto/cgi.html" hreflang="en" rel="alternate" title="English"> en </a> |
  22. <a href="../ja/howto/cgi.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
  23. <a href="../ko/howto/cgi.html" title="Korean"> ko </a></p>
  24. </div>
  25. <div class="outofdate">└╠ ╣«╝¡┤┬ ├╓╜┼╞╟ ╣°┐¬└╠ ╛╞┤╒┤╧┤┘.
  26.             ├╓▒┘┐í ║»░µ╡╚ │╗┐δ└║ ┐╡╛ε ╣«╝¡╕ª ┬ⁿ░φ╟╧╝╝┐Σ.</div>
  27. </div>
  28. <div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#intro">╝╥░│</a></li>
  29. <li><img alt="" src="../images/down.gif" /> <a href="#configuring">CGI╕ª ╟π┐δ╟╧╡╡╖╧ ╛╞╞──í ╝│┴ñ╟╧▒Γ</a></li>
  30. <li><img alt="" src="../images/down.gif" /> <a href="#writing">CGI ╟┴╖╬▒╫╖Ñ └█╝║╟╧▒Γ</a></li>
  31. <li><img alt="" src="../images/down.gif" /> <a href="#troubleshoot">▒╫╖»│¬ ╛╞┴≈ ╡┐└█╟╧┴÷ ╛╩╛╞┐Σ!</a></li>
  32. <li><img alt="" src="../images/down.gif" /> <a href="#behindscenes">╡┌┐í╝¡┤┬ ╣½╜╝ └╧└╠ ╣·╛ε┴÷┤┬░í?</a></li>
  33. <li><img alt="" src="../images/down.gif" /> <a href="#libraries">CGI ╕≡╡Γ/╢≤└╠║Ω╖»╕«</a></li>
  34. <li><img alt="" src="../images/down.gif" /> <a href="#moreinfo">┤⌡ ╕╣└║ ┴ñ║╕...</a></li>
  35. </ul></div>
  36. <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  37. <div class="section">
  38. <h2><a name="intro" id="intro">╝╥░│</a></h2>
  39.     
  40.  
  41.     <table class="related"><tr><th>░ⁿ╖├╡╚ ╕≡╡Γ</th><th>░ⁿ╖├╡╚ ┴÷╜├╛ε</th></tr><tr><td><ul><li><code class="module"><a href="../mod/mod_alias.html">mod_alias</a></code></li><li><code class="module"><a href="../mod/mod_cgi.html">mod_cgi</a></code></li></ul></td><td><ul><li><code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code></li><li><code class="directive"><a href="../mod/core.html#options">Options</a></code></li><li><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code></li></ul></td></tr></table>
  42.  
  43.     <p>CGI (Common Gateway Interface)┤┬ └Ñ╝¡╣÷░í ║╕┼δ CGI ╟┴╖╬▒╫╖Ñ
  44.     ╚ñ└║ CGI ╜║┼⌐╕│╞«╢≤░φ ║╬╕ú┤┬, (└Ñ╞Σ└╠┴÷ │╗┐δ└╗ ╕╕╡σ┤┬) ┐▄║╬
  45.     ╟┴╖╬▒╫╖Ñ░· ┼δ╜┼╟╧┤┬ ╣µ╣²└╗ ┴ñ└╟╟╤┤┘. └Ñ╗τ└╠╞«┐í╝¡ ╡┐└√└╬
  46.     ╞Σ└╠┴÷╕ª ╕╕╡σ┤┬ ░í└σ ╚τ╟╧░φ ░ú┤▄╟╤ ╣µ╣²└╠┤┘. └╠ ╣«╝¡┤┬ ╛╞╞──í
  47.     └Ñ╝¡╣÷┐í CGI╕ª ▒╕╝║╟╧┤┬ ╣µ╣²└╗ ╝╥░│╟╧░φ, CGI ╟┴╖╬▒╫╖Ñ└╗
  48.     └█╝║╟╪║╗┤┘.</p>
  49.   </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  50. <div class="section">
  51. <h2><a name="configuring" id="configuring">CGI╕ª ╟π┐δ╟╧╡╡╖╧ ╛╞╞──í ╝│┴ñ╟╧▒Γ</a></h2>
  52.     
  53.  
  54.     <p>CGI ╟┴╖╬▒╫╖Ñ└╠ ┐├╣┘╖╬ ╡┐└█╟╧╖┴╕Θ CGI ╜╟╟α└╠ ░í┤╔╟╧╡╡╖╧
  55.     ╛╞╞──í╕ª ╝│┴ñ╟╪╛▀ ╟╤┤┘. ╝│┴ñ╟╧┤┬ ╣µ╣²└║ ┐⌐╖»░í┴÷┤┘.</p>
  56.  
  57.     <h3><a name="scriptalias" id="scriptalias">ScriptAlias</a></h3>
  58.       
  59.  
  60.       <p><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
  61.       ┴÷╜├╛ε╕ª ╗τ┐δ╟╧╕Θ ╛╞╞──í┤┬ ╞»┴ñ ╡≡╖║┼Σ╕«╕ª CGI ╟┴╖╬▒╫╖Ñ┐δ└╕╖╬
  62.       ╡╨┤┘. ╛╞╞──í┤┬ └╠ ╡≡╖║┼Σ╕«┐í └╓┤┬ ╕≡╡τ ╞─└╧└╠ CGI
  63.       ╟┴╖╬▒╫╖Ñ└╠╢≤░φ ░í┴ñ╟╧┐⌐ ┼¼╢≤└╠╛≡╞«░í └┌┐°└╗ ┐Σ├╗╟╧╕Θ └┌┐°└╗
  64.       ╜╟╟α╟╧╖┴░φ ╜├╡╡╟╤┤┘.</p>
  65.  
  66.       <p><code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>
  67.       ┴÷╜├╛ε┤┬ ┤┘└╜░· ░░└╠ ╗τ┐δ╟╤┤┘.</p>
  68.  
  69.       <div class="example"><p><code>
  70.         ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/
  71.       </code></p></div>
  72.  
  73.       <p>└º ┐╣┴ª┤┬ ╛╞╞──í╕ª ▒Γ║╗ └σ╝╥┐í ╝│─í╟╤ ░µ┐∞
  74.       <code>httpd.conf</code> ╝│┴ñ╞─└╧┐í └╓┤┬ │╗┐δ└╠┤┘. <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code> ┴÷╜├╛ε┤┬ <code class="directive"><a href="../mod/mod_alias.html#alias">Alias</a></code> ┴÷╜├╛ε┐═ ░░└╠ URL
  75.       ╛╒║╬║╨└╗ ╞»┴ñ ╡≡╖║┼Σ╕«╖╬ ┤δ└└╟╤┤┘.
  76.       <code class="directive">Alias</code>┐═
  77.       <code class="directive">ScriptAlias</code>┤┬ ║╕┼δ <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> ╡≡╖║┼Σ╕« ╣█┐í └╓┤┬
  78.       ╡≡╖║┼Σ╕«┐í ╗τ┐δ╟╤┤┘. <code class="directive">Alias</code>┐═
  79.       <code class="directive">ScriptAlias</code>└╟ ┬≈└╠┴í└║
  80.       <code class="directive">ScriptAlias</code>░í ├▀░í╖╬ URL ╛╒║╬║╨└╕╖╬
  81.       ╜├└█╟╧┤┬ ╕≡╡τ ╞─└╧└╗ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ ├δ▒▐╟╧┤┬ ┴í└╠┤┘.
  82.       ▒╫╖í╝¡ └º└╟ ╝│┴ñ└║ ╛╞╞──í┐í░╘ <code>/cgi-bin/</code>└╕╖╬
  83.       ╜├└█╟╧┤┬ └┌┐°└╗ ┐Σ├╗╟╧╕Θ
  84.       <code>/usr/local/apache2/cgi-bin/</code> ╡≡╖║┼Σ╕«┐í╝¡
  85.       ├ú╛╞╝¡ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ ├│╕«╟╧╢≤░φ ╛╦╕░┤┘.</p>
  86.  
  87.       <p>┐╣╕ª ╡Θ╛ε, URL
  88.       <code>http://www.example.com/cgi-bin/test.pl</code>└╗
  89.       ┐Σ├╗╟╧╕Θ ╛╞╞──í┤┬
  90.       <code>/usr/local/apache2/cgi-bin/test.pl</code> ╞─└╧└╗
  91.       ╜╟╟α╟╧┐⌐ ░ß░·╕ª ╣▌╚»╟╤┤┘. ╣░╖╨ ╞─└╧└╠ ┴╕└τ╟╧░φ ╜╟╟α░í┤╔╟╧╕τ
  92.       ╛ε╢▓ ╣µ╣²└╕╖╬╡τ ├Γ╖┬└╗ ╟╪╛▀ ╟╤┤┘. ▒╫╖╕┴÷ ╛╩└╕╕Θ ╛╞╞──í┤┬
  93.       ┐└╖∙╣«└╗ ║╕│╜┤┘.</p>
  94.     
  95.  
  96.     <h3><a name="nonscriptalias" id="nonscriptalias">ScriptAlias ╡≡╖║┼Σ╕« ╣█┐í └╓┤┬ CGI</a></h3>
  97.       
  98.  
  99.       <p>║╕┼δ ║╕╛╚╗≤ └╠└»╢º╣«┐í CGI ╟┴╖╬▒╫╖Ñ└║ <code class="directive"><a href="../mod/mod_alias.html#scriptalias">ScriptAlias</a></code>╟╤ ╡≡╖║┼Σ╕«┐í
  100.       ╟╤┴ñ╟╤┤┘. ▒╫╖í╝¡ ░ⁿ╕«└┌┤┬ ┤⌐░í CGI ╟┴╖╬▒╫╖Ñ└╗ ╗τ┐δ╟╥ ╝÷
  101.       └╓┤┬┴÷ ╛÷░▌╚≈ ░¿╡╢╟╥ ╝÷ └╓┤┘. ▒╫╖»│¬ └√┤τ╟╤ ║╕╛╚┴╢─í╕ª
  102.       ├δ╟▀┤┘╕Θ ╛╞╣½ ╡≡╖║┼Σ╕«┐í╝¡│¬ CGI ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧┴÷ ╛╩└╗
  103.       └╠└»░í ╛°┤┘. ┐╣╕ª ╡Θ╛ε, <code class="directive"><a href="../mod/mod_userdir.html#userdir">UserDir</a></code> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧┐⌐
  104.       ╗τ┐δ└┌░í └┌╜┼└╟ ╚¿╡≡╖║┼Σ╕«┐í └Ñ╞Σ└╠┴÷╕ª ░í┴÷┤┬ ░µ┐∞╕ª
  105.       ░í┴ñ╟╧└┌. ╗τ┐δ└┌░í └┌╜┼└╟ CGI ╟┴╖╬▒╫╖Ñ└╗ ╗τ┐δ╟╧░φ ╜═└║╡Ñ
  106.       <code>cgi-bin</code> ╡≡╖║┼Σ╕«┐í ┴ó▒┘▒╟╟╤└╠ ╛°┤┘╕Θ, ┤┘╕Ñ
  107.       ░≈┐í╝¡╢≤╡╡ CGI ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧░φ ╜═└╗ ░═└╠┤┘.</p>
  108.  
  109.       <p>╛╞╣½ ╡≡╖║┼Σ╕«┐í╝¡│¬ CGI ╜╟╟α└╗ ╟π┐δ╟╧╖┴╕Θ ╡╬ ░·┴ñ└╠
  110.       ╟╩┐Σ╟╧┤┘. ╕╒└·, <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code>│¬ <code class="directive"><a href="../mod/core.html#sethandler">SetHandler</a></code> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧┐⌐
  111.       <code>cgi-script</code> ╟┌╡Θ╖»╕ª └█╡┐╟╪╛▀ ╟╤┤┘. ╡╬╣°┬░╖╬,
  112.       <code class="directive"><a href="../mod/core.html#options">Options</a></code> ┴÷╜├╛ε┐í
  113.       <code>ExecCGI</code>╕ª ┴÷┴ñ╟╪╛▀ ╟╤┤┘.</p>
  114.     
  115.  
  116.     <h3><a name="options" id="options">Options╕ª ╗τ┐δ╟╧┐⌐ ╕φ╜├└√└╕╖╬ CGI ╜╟╟α└╗ ╟π┐δ╟╧▒Γ</a></h3>
  117.       
  118.  
  119.       <p>╝¡╣÷└╟ ┴╓╝│┴ñ╞─└╧┐í ┴≈┴ó <code class="directive"><a href="../mod/core.html#options">Options</a></code> ┴÷╜├╛ε╕ª ╗τ┐δ╟╧┐⌐ ╞»┴ñ
  120.       ╡≡╖║┼Σ╕«┐í╝¡ CGI ╜╟╟α└╗ ╟π┐δ╟╥ ╝÷ └╓┤┘.</p>
  121.  
  122.       <div class="example"><p><code>
  123.         <Directory /usr/local/apache2/htdocs/somedir><br />
  124.         <span class="indent">
  125.           Options +ExecCGI<br />
  126.         </span>
  127.         </Directory>
  128.       </code></p></div>
  129.  
  130.       <p>└º ┴÷╜├╛ε╖╬ ╛╞╞──í┤┬ CGI ╞─└╧└╟ ╜╟╟α└╗ ╟π┐δ╟╤┤┘. ╛ε╢▓
  131.       ╞─└╧└╠ CGI ╞─└╧└╬┴÷╡╡ ╝¡╣÷┐í░╘ ╛╦╖┴╛▀ ╟╤┤┘. ┤┘└╜ <code class="directive"><a href="../mod/mod_mime.html#addhandler">AddHandler</a></code> ┴÷╜├╛ε┤┬ ╝¡╣÷┐í░╘
  132.       ╚«└σ└┌░í <code>cgi</code>│¬ <code>pl</code>└╬ ╞─└╧└║ ╕≡╡╬
  133.       CGI ╟┴╖╬▒╫╖Ñ└╠╢≤░φ ╛╦╕░┤┘.</p>
  134.  
  135.       <div class="example"><p><code>
  136.         AddHandler cgi-script .cgi .pl
  137.       </code></p></div>
  138.     
  139.  
  140.     <h3><a name="htaccess" id="htaccess">.htaccess ╞─└╧</a></h3>
  141.       
  142.  
  143.       <p><a href="htaccess.html"><code>.htaccess</code> ┼⌡┼Σ╕«╛≤</a>└║
  144.       <code>httpd.conf</code>┐í ┴ó▒┘▒╟╟╤└╠ ╛°┤┬ ░µ┐∞┐í CGI ╟┴╖╬▒╫╖Ñ└╗
  145.       ╗τ┐δ╟╥ ╝÷ └╓┤┬ ╣µ╣²└╗ ╛╦╖┴┴╪┤┘.</p>
  146.     
  147.  
  148.     <h3><a name="userdir" id="userdir">╗τ┐δ└┌ ╡≡╖║┼Σ╕«</a></h3>
  149.       
  150.  
  151.       <p>╛╞╖í ╝│┴ñ└╗ ╗τ┐δ╟╧╕Θ ╗τ┐δ└┌ ╡≡╖║┼Σ╕«┐í╝¡ <code>.cgi</code>╖╬
  152.       │í│¬┤┬ ╞─└╧└╗ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ ╜╟╟α╟╤┤┘.</p>
  153.  
  154.       <div class="example"><p><code>
  155.       <Directory /home/*/public_html><br />
  156.       <span class="indent">
  157.         Options +ExecCGI<br />
  158.         AddHandler cgi-script .cgi<br />
  159.       </span>
  160.       </Directory>
  161.       </code></p></div>
  162.  
  163.       <p>┤┘└╜└╗ ╗τ┐δ╟╧╕Θ ╗τ┐δ└┌ ╡≡╖║┼Σ╕«└╟ <code>cgi-bin</code>
  164.       ╟╧└º╡≡╖║┼Σ╕«┐í └╓┤┬ ╕≡╡τ ╞─└╧└╗ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ └╬╜─╟╤┤┘.</p>
  165.  
  166.       <div class="example"><p><code>
  167.       <Directory /home/*/public_html/cgi-bin><br />
  168.       <span class="indent">
  169.         Options ExecCGI<br />
  170.         SetHandler cgi-script<br />
  171.       </span>
  172.       </Directory>
  173.       </code></p></div>
  174.  
  175.     
  176.  
  177.   </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  178. <div class="section">
  179. <h2><a name="writing" id="writing">CGI ╟┴╖╬▒╫╖Ñ └█╝║╟╧▒Γ</a></h2>
  180.     
  181.  
  182.     <p>``└╧╣▌└√└╬'' ╟┴╖╬▒╫╖í╣╓░· CGI ╟┴╖╬▒╫╖í╣╓ ╗τ└╠┐í┤┬ ╡╬░í┴÷
  183.     ┴╓╡╚ ┬≈└╠┴í└╠ └╓┤┘.</p>
  184.  
  185.     <p>├╣╣°┬░ ┬≈└╠┤┬ CGI ╟┴╖╬▒╫╖Ñ└║ ┤┘╕Ñ ├Γ╖┬└╗ ╟╧▒Γ└ⁿ┐í ╕╒└·
  186.     MIME-type ╟∞┤⌡╕ª ├Γ╖┬╟╪╛▀ ╟╤┤┘┤┬ ┴í└╠┤┘. HTTP ╟∞┤⌡┤┬
  187.     ┼¼╢≤└╠╛≡╞«┐í░╘ ┼¼╢≤└╠╛≡╞«░í ╛ε╢▓ │╗┐δ└╗ ╣▐░╘╡╔┴÷ ╣╠╕« ╛╦╕░┤┘.
  188.     ║╕┼δ ┤┘└╜░· ░░┤┘.</p>
  189.  
  190.     <div class="example"><p><code>
  191.       Content-type: text/html
  192.     </code></p></div>
  193.  
  194.     <p>╡╬╣°┬░ ┬≈└╠┤┬ HTML ╚ñ└║ ║Ω╢≤┐∞└·░í ║╕┐⌐┴┘ ╝÷ └╓┤┬ ╟ⁿ╜─└╕╖╬
  195.     ├Γ╖┬╟╪╛▀ ╟╤┤┘┤┬ ┴í└╠┤┘. ┤δ║╬║╨└╟ ░µ┐∞ HTML└╗ ├Γ╖┬╟╧┴÷╕╕,
  196.     ╢º╢º╖╬ gif ▒╫╕▓░· ░░└╠ HTML└╠ ╛╞┤╤ │╗┐δ└╗ ├Γ╖┬╟╧┤┬ CGI
  197.     ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╧┤┬ ░µ┐∞╡╡ └╓┤┘.</p>
  198.  
  199.     <p>╡╬░í┴÷╕ª ┴ª┐▄╟╧░φ┤┬ CGI ╟┴╖╬▒╫╖Ñ └█╝║└║ └╠╣╠ ╕╕╡Θ╛ε ║╕╛╥└╗
  200.     ┤┘╕Ñ ╟┴╖╬▒╫╖Ñ╡Θ░· ╕┼┐∞ ║±╜┴╟╧┤┘.</p>
  201.  
  202.     <h3><a name="firstcgi" id="firstcgi">├│└╜└╕╖╬ ╕╕╡τ CGI ╟┴╖╬▒╫╖Ñ</a></h3>
  203.       
  204.  
  205.       <p>┤┘└╜└║ ║Ω╢≤┐∞└·┐í ╟╤ ┴┘└╗ ┬∩┤┬ CGI ╟┴╖╬▒╫╖Ñ ┐╣┴ª┤┘.
  206.       ▒╫┤δ╖╬ <code>first.pl</code>└╠╢≤┤┬ ╞─└╧┐í └·└σ╟╧░φ,
  207.       <code>cgi-bin</code> ╡≡╖║┼Σ╕«┐í ║╣╗τ╟╤┤┘.</p>
  208.  
  209.       <div class="example"><p><code>
  210.         #!/usr/bin/perl<br />
  211.         print "Content-type: text/html\n\n";<br />
  212.         print "Hello, World.";
  213.       </code></p></div>
  214.  
  215.       <p>Perl┐í └═╝≈╟╧┴÷ ╛╩┤⌡╢≤╡╡ ╣½╜╝ └╧└╠ └╧╛ε│¬┤┬┴÷ ╛╦ ╝÷
  216.       └╓┤┘. ├╣╣°┬░ ┴┘└║ ╛╞╞──í(╚ñ└║ ╗τ┐δ╟╧┤┬ ╜⌐)┐í░╘
  217.       <code>/usr/bin/perl</code> └º─í┐í └╓┤┬ └╬┼═╟┴╕«┼═└╗ ╗τ┐δ╟╧┐⌐
  218.       └╠ ╟┴╖╬▒╫╖Ñ ╞─└╧└╗ ╜╟╟α╟╧╢≤░φ ╛╦╕░┤┘. ╡╬╣°┬░ ┴┘└║ ╣µ▒▌
  219.       ╕╗╟╤ content-type ╝▒╛≡└╗ ├Γ╖┬╟╧░φ carriage-return ┴┘╣┘▓▐└╗
  220.       ╡╬╣° ├Γ╖┬╟╤┤┘. ▒╫╖»╕Θ ╟∞┤⌡ ╡┌┐í HTTP ╟∞┤⌡└╟ │í└╗ ╢µ╟╧┤┬
  221.       ║≤┴┘└╠ ╗²▒Γ░φ, ║╗╣«└╠ ╜├└█╟╤┤┘. ╝╝╣°┬░ ┴┘└║ "Hello, World."
  222.       ╣«└┌┐¡└╗ ├Γ╖┬╟╤┤┘. └╠░═└╕╖╬ │í└╠┤┘.</p>
  223.  
  224.       <p>║Ω╢≤┐∞└·╕ª ╜╟╟α╟╧░φ ┴╓╝╥╕ª └╘╖┬╟╤┤┘</p>
  225.  
  226.       <div class="example"><p><code>
  227.         http://www.example.com/cgi-bin/first.pl
  228.       </code></p></div>
  229.  
  230.       <p>╞─└╧ └σ╝╥╕ª └╘╖┬╟╧╕Θ, ║Ω╢≤┐∞└·├ó┐í <code>Hello, World.</code>
  231.       ╟╤ ┴┘└╠ ║╕└╬┤┘. ╚∩║╨╡╟┴÷┤┬ ╛╩┴÷╕╕, ╟╤╣° ╡┐└█╟╧┤┬ ░═└╗
  232.       ║╕╛╥└╕┤╧ └╠┴ª ┤┘╕Ñ ░═└╗ ╜├╡╡╟╪ ║╝ ╝÷ └╓┤┘.</p>
  233.     
  234.   </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  235. <div class="section">
  236. <h2><a name="troubleshoot" id="troubleshoot">▒╫╖»│¬ ╛╞┴≈ ╡┐└█╟╧┴÷ ╛╩╛╞┐Σ!</a></h2>
  237.     
  238.  
  239.     <p>└Ñ┐í╝¡ CGI ╟┴╖╬▒╫╖Ñ┐í ┴ó▒┘╟╥╢º ║Ω╢≤┐∞└·┐í │¬┐├ ╝÷ └╓┤┬
  240.     │╗┐δ└║ ▒Γ║╗└√└╕╖╬ │╫░í┴÷┤┘.</p>
  241.  
  242.     <dl>
  243.       <dt>CGI ╟┴╖╬▒╫╖Ñ└╟ ├Γ╖┬</dt>
  244.       <dd>┴┴┤┘! ╕≡╡τ ░═└╠ └▀ ╡┐└█╟╤┤┘┤┬ ╢µ└╠┤┘. ├Γ╖┬└║ ┴ñ╚«╟╧┴÷╕╕
  245.       ║Ω╢≤┐∞└·░í ┐├╣┘╖╬ ├│╕«╟╧┴÷ ╕°╟╤┤┘╕Θ, CGI ╟┴╖╬▒╫╖Ñ┐í╝¡
  246.       ┐├╣┘╕Ñ <code>Content-Type</code>└╗ ╝│┴ñ╟╧┐┤┤┬┴÷ ╚«└╬╟╤┤┘.</dd>
  247.  
  248.       <dt>CGI ╟┴╖╬▒╫╖Ñ ╝╥╜║─┌╡σ ╚ñ└║ "POST Method Not Allowed"
  249.       ╣«▒╕</dt>
  250.       <dd>CGI ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧╡╡╖╧ ╛╞╞──í╕ª └√└²╚≈ ╝│┴ñ╟╧┴÷
  251.       ╛╩╛╥┤┘┤┬ ╢µ└╠┤┘. <a href="#configuring">╛╞╞──í ╝│┴ñ╟╧▒Γ</a>
  252.       └²└╗ ┤┘╜├ └╨░φ ╗⌐╕╘└║ ║╬║╨└╠ └╓┤┬┴÷ ├ú╛╞║┴╢≤.</dd>
  253.  
  254.       <dt>"Forbidden"└╕╖╬ ╜├└█╟╧┤┬ ╣«▒╕</dt>
  255.       <dd>▒╟╟╤ ╣«┴ª░í └╓┤┘┤┬ ╢µ└╠┤┘. <a href="#errorlogs">╛╞╞──í
  256.       ┐└╖∙ ╖╬▒╫</a>┐═ ╛╞╖í <a href="#permissions">╞─└╧▒╟╟╤</a>
  257.       └²└╗ ╚«└╬╟╧╢≤.</dd>
  258.  
  259.       <dt>"Internal Server Error"╢≤┤┬ ╣«▒╕</dt>
  260.       <dd><a href="#errorlogs">╛╞╞──í ┐└╖∙ ╖╬▒╫</a>╕ª ║╕╕Θ ╛╞╕╢╡╡
  261.       CGI ╟┴╖╬▒╫╖Ñ└╠ ├Γ╖┬╟╤ ┐└╖∙╣«░· ╟╘▓▓ "Premature end of
  262.       script headers"░í ║╕└╧ ░═└╠┤┘. └╠ ░µ┐∞ ╛╞╖í │╗┐δ╡Θ└╗ ╟╧│¬╛┐
  263.       ╚«└╬╟╧┐⌐ ╛ε╢▓ └╠└»╖╬ CGI ╟┴╖╬▒╫╖Ñ└╠ └√└²╟╤ HTTP ╟∞┤⌡╕ª
  264.       ├Γ╖┬╟╧┴÷ ╕°╟▀┤┬┴÷ ╛╦╛╞║╗┤┘.</dd>
  265.     </dl>
  266.  
  267.     <h3><a name="permissions" id="permissions">╞─└╧▒╟╟╤</a></h3>
  268.       
  269.  
  270.       <p>╝¡╣÷┤┬ ┤τ╜┼░· ╡┐└╧╟╤ ░Φ┴ñ└╕╖╬ ╡┐└█╟╧┴÷ ╛╩└╜└╗ ╕φ╜╔╟╧╢≤.
  271.       ┴∩, ╝¡╣÷░í ╜├└█╟╧╕Θ ╝¡╣÷┤┬ ║±╞»▒╟ ╗τ┐δ└┌ ▒╟╟╤(║╕┼δ
  272.       <code>nobody</code>│¬ <code>www</code>)└╕╖╬ ╡┐└█╟╤┤┘.
  273.       ▒╫╖í╝¡ ┤τ╜┼└╠ ╝╥└»╟╤ ╞─└╧└╗ ╜╟╟α╟╧╖┴╕Θ ▒╟╟╤└╠ ╟╩┐Σ╟╧┤┘.
  274.       ╞─└╧┐í <code>nobody</code>░í ╜╟╟α╟╧▒Γ┐í ├µ║╨╟╤ ▒╟╟╤└╗
  275.       ┴╓▒Γ└º╟╪ ║╕┼δ ╕≡╡╬┐í░╘ ╞─└╧└╟ ╜╟╟α ▒╟╟╤└╗ ┴╪┤┘.</p>
  276.  
  277.       <div class="example"><p><code>
  278.         chmod a+x first.pl
  279.       </code></p></div>
  280.  
  281.       <p>╢╟, ╟┴╖╬▒╫╖Ñ└╠ ┤┘╕Ñ ╞─└╧└╗ └╨░┼│¬ ╛┤┤┘╕Θ └╠ ╞─└╧┐í╡╡
  282.       └√└²╟╤ ▒╟╟╤└╠ ╟╩┐Σ╟╧┤┘.</p>
  283.  
  284.     
  285.  
  286.     <h3><a name="pathinformation" id="pathinformation">░µ╖╬ ┴ñ║╕┐═ ╚»░µ</a></h3>
  287.       
  288.  
  289.       <p>╕φ╖╔╟α┐í╝¡ ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧╕Θ └┌╡┐└╕╖╬ ╛ε╢▓ ┴ñ║╕░í
  290.       ╜⌐╖╬ └ⁿ┤▐╡╚┤┘. ┐╣╕ª ╡Θ╛ε, <code>PATH</code>┤┬ ╜⌐┐í░╘ ┤τ╜┼└╠
  291.       ╕╗╟╤ ╞─└╧└╗ ├ú└╗ └σ╝╥╕ª ╛╦╖┴┴╪┤┘.</p>
  292.  
  293.       <p>└Ñ╝¡╣÷░í ╟┴╖╬▒╫╖Ñ└╗ CGI ╟┴╖╬▒╫╖Ñ└╕╖╬ ╜╟╟α╟╥╢º┤┬
  294.       <code>PATH</code>░í ┤┘╕ª ╝÷ └╓┤┘. (┐╣╕ª ╡Θ╛ε,
  295.       <code>sendmail</code> ░░└╠) CGI ╟┴╖╬▒╫╖Ñ ╛╚┐í╝¡ ╜╟╟α╟╧┤┬
  296.       ╕φ╖╔╛ε┤┬ ┐╧└ⁿ╟╤ ░µ╖╬╖╬ ╕φ╜├╟╪╛▀ ╜⌐└╠ ╕φ╖╔╛ε╕ª ├ú└╗ ╝÷
  297.       └╓┤┘.</p>
  298.  
  299.       <p>░µ╖╬ ╣«┴ª┤┬ ┤┘└╜░· ░░└╠ CGI ╟┴╖╬▒╫╖Ñ ├╣╣°┬░ ┴┘┐í │¬┐└┤┬
  300.       ╜║┼⌐╕│╞« └╬┼═╟┴╕«┼═ (║╕┼δ <code>perl</code>) ░µ╖╬┐í╝¡
  301.       └┌┴╓ ╣▀╗²╟╤┤┘.</p>
  302.  
  303.       <div class="example"><p><code>
  304.         #!/usr/bin/perl
  305.       </code></p></div>
  306.  
  307.       <p>╜╟┴ª╖╬ └╬┼═╟┴╕«┼═└╟ ░µ╖╬└╬┴÷ ╚«└╬╟╤┤┘.</p>
  308.  
  309.       <p>╢╟, CGI ╟┴╖╬▒╫╖Ñ└╠ ┤┘╕Ñ <a href="#env">╚»░µ║»╝÷</a>╕ª
  310.       ╗τ┐δ╟╤┤┘╕Θ ╛╞╞──í░í └╠ ║»╝÷╡Θ└╗ ╟┴╖╬▒╫╖Ñ┐í░╘ └ⁿ┤▐╟╪╛▀
  311.       ╟╤┤┘.</p>
  312.  
  313.     
  314.  
  315.     <h3><a name="syntaxerrors" id="syntaxerrors">╟┴╖╬▒╫╖Ñ ┐└╖∙</a></h3>
  316.       
  317.  
  318.       <p>CGI ╟┴╖╬▒╫╖Ñ└╠ ╜╟╞╨╟╧┤┬ ░µ┐∞ ┤δ║╬║╨ ╟┴╖╬▒╫╖Ñ └┌├╝
  319.       ╣«┴ª╢º╣«└╠┤┘. ╞»╚≈ └º└╟ ╡╬░í┴÷ ╜╟╝÷╕ª ╟╧┴÷ ╛╩╛╥░φ └╠ ▒█└╗
  320.       ░Φ╝╙ ║╕░φ └╓┤┘╕Θ ┤⌡┤⌡┐φ ▒╫╖╕┤┘. ╕╒└· └Ñ╝¡╣÷┐í╝¡ ╜╟╟α╟╧▒Γ
  321.       └ⁿ┐í ╕φ╖╔╟α┐í╝¡ ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╪║╗┤┘. ┐╣╕ª ╡Θ╛ε, ┤┘└╜░·
  322.       ░░└╠ ╜╟╟α╟╤┤┘.</p>
  323.  
  324.       <div class="example"><p><code>
  325.       cd /usr/local/apache2/cgi-bin<br />
  326.       ./first.pl
  327.       </code></p></div>
  328.  
  329.       <p>(<code>perl</code> └╬┼═╟┴╕«┼═╕ª ╜╟╟α╟╧┴÷ ╕╢╢≤. ╜⌐░·
  330.       ╛╞╞──í┤┬ ╜║┼⌐╕│╞« ├╣╣°┬░ ┴┘┐í └╓┤┬ <a href="#pathinformation">░µ╖╬ ┴ñ║╕</a>╕ª ╗τ┐δ╟╧┐⌐ └╬┼═╟┴╕«┼═╕ª
  331.       ├ú╛╞╛▀ ╟╤┤┘.)</p>
  332.  
  333.       <p>╟┴╖╬▒╫╖Ñ└║ ┴ª└╧ ╕╒└· <code>Content-Type</code>└╗ ╞≈╟╘╟╤
  334.       HTTP ╟∞┤⌡╡Θ└╗ ├Γ╖┬╟╧░φ ║≤ ┴┘└╗ ├Γ╖┬╟╪╛▀ ╟╤┤┘. ┤┘╕Ñ ░═└╗
  335.       ├Γ╖┬╟╤┤┘╕Θ └Ñ╝¡╣÷┐í╝¡ ╜╟╟α╟╥ ░µ┐∞ ╛╞╞──í┤┬ <code>Premature
  336.       end of script headers</code>╕ª ╣▌╚»╟╤┤┘. └┌╝╝╟╤ │╗┐δ└║
  337.       └º└╟ <a href="#writing">CGI ╟┴╖╬▒╫╖Ñ └█╝║╟╧▒Γ</a>╕ª ┬ⁿ░φ╟╧╢≤.</p>
  338.     
  339.  
  340.     <h3><a name="errorlogs" id="errorlogs">┐└╖∙ ╖╬▒╫</a></h3>
  341.       
  342.  
  343.       <p>┐└╖∙ ╖╬▒╫┤┬ ┤τ╜┼ ╞φ└╠┤┘. ╣½╛≡░í └▀╕°╡╟╕Θ ┐└╖∙ ╖╬▒╫┐í
  344.       ╣«▒╕░í ╗²▒Σ┤┘. ┐└╖∙ ╖╬▒╫╕ª ┴ª└╧ ╕╒└· ╗∞╞∞║┴╛▀ ╟╤┤┘. └Ñ╗τ└╠╞«╕ª
  345.       ╚ú╜║╞├╟╧┤┬ ░≈┐í╝¡ ┐└╖∙ ╖╬▒╫╕ª ║╕┴÷ ╕°╟╧░╘ ╟╤┤┘╕Θ, ╛╞╕╢╡╡
  346.       ┤┘╕Ñ ╛≈├╝╕ª ╛╦╛╞║┴╛▀ ╟╤┤┘. ┐└╖∙ ╖╬▒╫╕ª ║╕┤┬ ╣µ╣²└╗ └═╚≈╕Θ,
  347.       ┤δ║╬║╨└╟ ╣«┴ª╕ª ╗í╕« ╞─╛╟╟╧┐⌐ ╟╪░ß╟╥ ╝÷ └╓┤┘.</p>
  348.     
  349.  
  350.     <h3><a name="suexec" id="suexec">Suexec</a></h3>
  351.       
  352.  
  353.       <p><a href="../suexec.html">suexec</a> ┴÷┐° ╟┴╖╬▒╫╖Ñ└╗
  354.       ╗τ┐δ╟╧╕Θ ╛ε╢▓ ░í╗≤╚ú╜║╞« ╚ñ└║ ╛ε╢▓ ╗τ┐δ└┌ ╡≡╖║┼Σ╕«┐í └╓┤┬┴÷┐í
  355.       ╡√╢≤ CGI ╟┴╖╬▒╫╖Ñ└╗ ┤┘╕Ñ ╗τ┐δ└┌ ▒╟╟╤└╕╖╬ ╜╟╟α╟╥ ╝÷ └╓┤┘.
  356.       Suexec┤┬ ╕┼┐∞ ╛÷░▌╟╧░╘ ▒╟╟╤└╗ ░╦╗τ╟╧╕τ, ░╦╗τ╕ª ╟╧│¬╢≤╡╡
  357.       ┼δ░·╟╧┴÷ ╕°╟╧╕Θ CGI ╟┴╖╬▒╫╖Ñ└╗ ╜╟╟α╟╧┴÷ ╛╩░φ <code>Premature
  358.       end of script headers</code>╕ª ╣▌╚»╟╤┤┘.</p>
  359.  
  360.       <p>suexec╕ª ╗τ┐δ╟╧░φ └╓┤┬┴÷ ╛╦╖┴╕Θ <code>apachectl -V</code>╕ª
  361.       ╜╟╟α╟╧┐⌐ <code>SUEXEC_BIN</code> └º─í╕ª ╚«└╬╟╤┤┘. ╛╞╞──í░í
  362.       ╜├└█╟╥╢º ▒╫ └σ╝╥┐í╝¡ suexec ╜╟╟α╞─└╧└╗ ╣▀░▀╟╧╕Θ, suexec╕ª
  363.       ╗τ┐δ╟╥ ╝÷ └╓┤┘.</p>
  364.  
  365.       <p>suexec╕ª ┐╧└ⁿ╚≈ └╠╟╪╟╧┴÷ ╕°╟▀┤┘╕Θ ╗τ┐δ╟╪╝¡┤┬ ╛╚╡╚┤┘.
  366.       suexec╕ª ╗τ┐δ╟╧┴÷ ╛╩└╕╖┴╕Θ <code>SUEXEC_BIN</code> └º─í┐í
  367.       └╓┤┬ <code>suexec</code> ╜╟╟α╞─└╧└╗ ┴÷┐∞░φ (╚ñ└║ ╞─└╧╕φ└╗
  368.       ╣┘▓┘░φ) ╝¡╣÷╕ª └τ╜├└█╟╧╕Θ ╡╚┤┘. <a href="../suexec.html">suexec</a>┐í ┤δ╟╪ └╨└║ ┤┘└╜ ▒╫╖í╡╡
  369.       ╗τ┐δ╟╧░φ ╜═┤┘╕Θ, <code>suexec -V</code>╕ª ╜╟╟α╟╧┐⌐ suexec
  370.       ╖╬▒╫╞─└╧ └º─í╕ª ╛╦╛╞│╗░φ ╖╬▒╫╞─└╧┐í╝¡ ┤τ╜┼└╠ ╛ε╢▓ ▒╘─ó└╗
  371.       ╛ε▒Γ░φ └╓┤┬┴÷ ├ú┤┬┤┘.</p>
  372.     
  373.   </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  374. <div class="section">
  375. <h2><a name="behindscenes" id="behindscenes">╡┌┐í╝¡┤┬ ╣½╜╝ └╧└╠ ╣·╛ε┴÷┤┬░í?</a></h2>
  376.     
  377.  
  378.     <p>CGI ╟┴╖╬▒╫╖í╣╓┐í └═╝≈╟╪┴·╝÷╖╧ ╡┌┐í╝¡ ╣·╛ε┴÷┤┬ └╧└╗ └╠╟╪╟╧╕Θ
  379.     ╡╡┐≥└╠ ╡╚┤┘. ▒╕├╝└√└╕╖╬ ║Ω╢≤┐∞└·┐═ ╝¡╣÷░í ╝¡╖╬ ┼δ╜┼╟╧┤┬
  380.     ╣µ╣²└╗ ╕╗╟╧┤┬ ░═└╠┤┘. ╕⌠╢≤╡╡ "Hello, World."╕ª ├Γ╖┬╟╧┤┬
  381.     ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╥ ╝÷ └╓┴÷╕╕ └╠╖▒ ╟┴╖╬▒╫╖Ñ└║ ║░╖╬ ╛╡╕≡░í
  382.     ╛°▒Γ╢º╣«└╠┤┘.</p>
  383.  
  384.     <h3><a name="env" id="env">╚»░µ║»╝÷</a></h3>
  385.       
  386.  
  387.       <p>╚»░µ║»╝÷┤┬ ┤τ╜┼└╠ ──╟╗┼═╕ª ╗τ┐δ╟╧┤┬ ╡┐╛╚ ┤τ╜┼ ┴╓└º╕ª
  388.       ╢░┤┘┤╧┤┬ ░¬└╠┤┘. ╚»░µ║»╝÷┤┬ path (──╟╗┼═░í ┤τ╜┼└╠ └╘╖┬╟╤
  389.       ╕φ╖╔╛ε┐í ╟╪┤τ╟╧┤┬ ╜╟┴ª ╞─└╧└╗ ├ú┤┬ └σ╝╥), ╗τ┐δ└┌╕φ, ┼═╣╠│╬
  390.       ┴╛╖∙┐═ ░░└╠ └»┐δ╟╤ ┴ñ║╕┤┘. └╧╣▌└√└╬ ╚»░µ║»╝÷╕ª ╕≡╡╬ ║╕╖┴╕Θ
  391.       ╕φ╖╔╟α ╟┴╖╥╟┴╞«┐í╝¡ <code>env</code>╕ª └╘╖┬╟╤┤┘.</p>
  392.  
  393.       <p>CGI╕ª ╜╟╟α╟╥╢º╡╡ ╝¡╣÷┐═ ║Ω╢≤┐∞└·┤┬ ░ó└┌└╟ ╚»░µ║»╝÷╕ª
  394.       ╝¡╖╬ ▒│╚»╟╤┤┘. └╠ ┴ñ║╕┐í┤┬ ║Ω╢≤┐∞└· ┴╛╖∙ (Netscape, IE,
  395.       Lynx), ╝¡╣÷ ┴╛╖∙ (╛╞╞──í, IIS, WebSite), ╜╟╟α╟╧┤┬ CGI
  396.       ╟┴╖╬▒╫╖Ñ╕φ ╡ε└╠ └╓┤┘.</p>
  397.  
  398.       <p>CGI ╟┴╖╬▒╫╖í╕╙┤┬ └╠╖▒ ║»╝÷╡Θ└╗ ╗τ┐δ╟╥ ╝÷ └╓░φ,
  399.       ╚»░µ║»╝÷┤┬ ┼¼╢≤└╠╛≡╞«-╝¡╣÷ ┼δ╜┼┐í┤┬ └╧║╬║╨└╗ ┬≈┴÷╟╤┤┘.
  400.       └ⁿ├╝ ╟╩╝÷ ║»╝÷ ╕±╖╧└║ <a href="http://hoohoo.ncsa.uiuc.edu/cgi/env.html">http://hoohoo.ncsa.uiuc.edu/cgi/env.html</a>┐í └╓┤┘.</p>
  401.  
  402.       <p>╛╞╖í ░ú┤▄╟╤ Perl CGI ╟┴╖╬▒╫╖Ñ└║ └┌╜┼┐í░╘ └ⁿ┤▐╡╚ ╕≡╡τ
  403.       ╚»░µ║»╝÷╕ª ║╕┐⌐┴╪┤┘. ╛╞╞──í ╣Φ╞≈║╗└╟ <code>cgi-bin</code>
  404.       ╡≡╖║┼Σ╕«┐í └╠┐═ ║±╜┴╟╤ ╟┴╖╬▒╫╖Ñ└╠ ╡╬░│ └╓┤┘. ╕ε╕ε ║»╝÷┤┬
  405.       ╟╩╝÷└╠░φ │¬╕╙┴÷┤┬ ╝▒┼├└√└╠┤┘. ▒╫╖í╝¡ ░°╜─ ╕±╖╧┐í ╛°┤┬
  406.       ║»╝÷╡╡ ║╕└╬┤┘. ╢╟, ╛╞╞──í┤┬ ▒Γ║╗└√└╕╖╬ ┴ª░°╟╧┤┬ ╚»░µ║»╝÷
  407.       ┐▄┐í ┐⌐╖»░í┴÷ ╣µ╣²└╕╖╬ <a href="../env.html">┴≈┴ó ╚»░µ║»╝÷╕ª
  408.       ├▀░í╟╥ ╝÷ └╓┤┘</a>.</p>
  409.  
  410.       <div class="example"><p><code>
  411.         #!/usr/bin/perl<br />
  412.         print "Content-type: text/html\n\n";<br />
  413.         foreach $key (keys %ENV) {<br />
  414.         <span class="indent">
  415.           print "$key --> $ENV{$key}<br>";<br />
  416.         </span>
  417.         }
  418.       </code></p></div>
  419.     
  420.  
  421.     <h3><a name="stdin" id="stdin">STDIN░· STDOUT</a></h3>
  422.       
  423.  
  424.       <p>╢╟, ╝¡╣÷┐═ ┼¼╢≤└╠╛≡╞«┤┬ ╟Ñ┴╪└╘╖┬(<code>STDIN</code>)░·
  425.       ╟Ñ┴╪├Γ╖┬(<code>STDOUT</code>)└╕╖╬ ┼δ╜┼╟╤┤┘. └╧╗≤└√└╬ ░µ┐∞
  426.       <code>STDIN</code>└║ ┼░║╕╡σ│¬ ╟┴╖╬▒╫╖Ñ└╠ ├│╕«╟╧┤┬ ╞─└╧└╗
  427.       │¬┼╕│╗░φ, <code>STDOUT</code>└║ ║╕┼δ ─▄╝╓└╠│¬ ╚¡╕Θ└╗ ╢µ╟╤┤┘.</p>
  428.  
  429.       <p>CGI ╟┴╖╬▒╫╖Ñ┐í░╘ └Ñ ╛τ╜─(form)└╗ <code>POST</code>╟╧╕Θ
  430.       ╛τ╜─┐í └╘╖┬╟╤ └┌╖ß╕ª ╞»║░╟╤ ╟ⁿ╜─└╕╖╬ ╣¡╛ε╝¡ CGI ╟┴╖╬▒╫╖Ñ└╟
  431.       <code>STDIN</code>└╕╖╬ └ⁿ┤▐╟╤┤┘. ▒╫╖»╕Θ ╟┴╖╬▒╫╖Ñ└║ ┼░║╕╡σ│¬
  432.       ╞─└╧┐í╝¡ ╛≥└║ └┌╖ß╕ª ├│╕«╟╧╡φ└╠ └┌╖ß╕ª ├│╕«╟╥ ╝÷ └╓┤┘.</p>
  433.  
  434.       <p>"╞»║░╟╤ ╟ⁿ╜─"└║ ╕┼┐∞ ░ú┤▄╟╧┤┘. ╟╫╕± └╠╕º░· ░¬└╗ ╡ε╚ú(=)╖╬
  435.       ┐¼░ß╟╧░φ, ╟╫╕± └╠╕º░· ░¬└╟ ╜╓╡Θ└╗ ╝¡╖╬ ╛╪╞█╗≈╡σ(&)╖╬
  436.       ┐¼░ß╟╤┤┘. ░°╣Θ, ╛┌╞█╗≈╡σ, ╡ε╚ú ░░└║ ║╬└┌┐¼╜║╖»┐ε ╣«└┌┤┬
  437.       ╚Ñ╡┐╟╧┴÷ ╛╩╡╡╖╧ 16┴°╝÷╖╬ ║»╚»╟╤┤┘. ┐╧└ⁿ╟╤ └┌╖ß ╣«└┌┐¡└║
  438.       ┤┘└╜░· ░░└╠ ╗²░σ┤┘.</p>
  439.  
  440.       <div class="example"><p><code>
  441.         name=Rich%20Bowen&city=Lexington&state=KY&sidekick=Squirrel%20Monkey
  442.       </code></p></div>
  443.  
  444.       <p>┴╛┴╛ URL ╡┌┐í╝¡ └╠╖▒ ╣«└┌┐¡└╗ ║╕░╘ ╡╚┤┘. └╠ ░µ┐∞ ╝¡╣÷┤┬
  445.       ╣«└┌┐¡└╗ <code>QUERY_STRING</code>└╠╢≤┤┬ ╚»░µ║»╝÷┐í └·└σ╟╤┤┘.
  446.       └╠╕ª <code>GET</code> ┐Σ├╗└╠╢≤░φ ╟╤┤┘. <code>FORM</code>
  447.       ┼┬▒╫└╟ <code>METHOD</code> ╝╙╝║└╗ ┴÷┴ñ╟╧┐⌐ HTML ╛τ╜─(form)└╠
  448.       └┌╖ß╕ª <code>GET</code>╟╥┴÷ <code>POST</code>╟╥┴÷ ░ß┴ñ╟╤┤┘.</p>
  449.  
  450.       <p>└╠┴ª ╟┴╖╬▒╫╖Ñ└║ └╠╖▒ ╣«└┌┐¡└╗ └»┐δ╟╤ ┴ñ║╕╖╬ ┬╔░│╛▀
  451.       ╟╤┤┘.  ┤┘╟α╚≈╡╡ └╠╖▒ └┌╖ß ├│╕«╕ª ╡╜░φ CGI ╟┴╖╬▒╫╖Ñ└╟ ┤┘╕Ñ
  452.       ┐⌐╖» ╕Θ└╗ ╗∞╟╟┤┬ ╢≤└╠║Ω╖»╕«┐═ ╕≡╡Γ╡Θ└╠ └╓┤┘.</p>
  453.     
  454.   </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  455. <div class="section">
  456. <h2><a name="libraries" id="libraries">CGI ╕≡╡Γ/╢≤└╠║Ω╖»╕«</a></h2>
  457.     
  458.  
  459.     <p>CGI ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╥╢º ┴÷╖τ╟╤ └█╛≈└╗ ┤δ╜┼╟╪┴╓┤┬ ─┌╡σ
  460.     ╢≤└╠║Ω╖»╕« ╚ñ└║ ╕≡╡Γ└╗ ╗τ┐δ╟╥┴÷ ░φ╖┴╟╪║┴╛▀ ╟╤┤┘. └╠╖▒ ░═└╗
  461.     ╗τ┐δ╟╧╕Θ ╣÷▒╫░í ┴┘░φ ┤⌡ ╗í╕« ╟┴╖╬▒╫╖Ñ└╗ ░│╣▀╟╥ ╝÷ └╓┤┘.</p>
  462.  
  463.     <p>Perl╖╬ CGI ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╤┤┘╕Θ <a href="http://www.cpan.org/">CPAN</a>┐í╝¡ ░ⁿ╖├ ╕≡╡Γ╡Θ└╗ ├ú└╗
  464.     ╝÷ └╓┤┘. CGI ░│╣▀┐í ░í└σ │╬╕« ╗τ┐δ╡╟┤┬ ╕≡╡Γ└║
  465.     <code>CGI.pm</code>└╠┤┘. ┤δ║╬║╨└╟ ╟┴╖╬▒╫╖Ñ┐í ├µ║╨╟╤ ├╓╝╥
  466.     ▒Γ┤╔└╗ ▒╕╟÷╟╤ <code>CGI::Lite</code>╡╡ ░φ╖┴╟╪ ║╝ ╝÷ └╓┤┘.</p>
  467.  
  468.     <p>C╖╬ CGI ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╤┤┘╕Θ ╝▒┼├└╟ ┐⌐┴÷░í ╕╣┤┘. └╠┴▀
  469.     ╟╧│¬░í <a href="http://www.boutell.com/cgic/">http://www.boutell.com/cgic/</a>┐í
  470.     └╓┤┬ <code>CGIC</code> ╢≤└╠║Ω╖»╕«┤┘.</p>
  471.   </div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
  472. <div class="section">
  473. <h2><a name="moreinfo" id="moreinfo">┤⌡ ╕╣└║ ┴ñ║╕...</a></h2>
  474.     
  475.  
  476.     <p>└Ñ┐í ╕┼┐∞ ╕╣└║ CGI ┴ñ║╕░í └╓┤┘. ┤║╜║▒╫╖∞ <a href="news:comp.infosystems.www.authoring.cgi">comp.infosystems.www.authoring.cgi</a>┐í╝¡ ┐⌐╖» ╗τ╢≈╡Θ░·
  477.     CGI ╣«┴ª╕ª │φ└╟╟╥ ╝÷ └╓┤┘. HTML Writers Guild└╟ -servers
  478.     ╕▐└╧╕╡╕«╜║╞«┤┬ ┴·╣«┐í ┤δ╟╤ ┤Σ└╗ ├ú▒Γ┐í ╚╟╕ó╟╤ └σ╝╥┤┘. <a href="http://www.hwg.org/lists/hwg-servers/">http://www.hwg.org/lists/hwg-servers/</a>┐í╝¡ ┤⌡ ╕╣└║ ░═└╗
  479.     ╛╦ ╝÷ └╓┤┘.</p>
  480.  
  481.     <p>▒╫╕«░φ ╣░╖╨ CGI ╟┴╖╬▒╫╖Ñ ╡┐└█┐í ┤δ╟╤ ╕≡╡τ │╗┐δ└╗ ╝│╕φ╟╤
  482.     CGI ▒╘╛α└╗ └╨╛ε╛▀ ╟╥┴÷╡╡ ╕≡╕Ñ┤┘. <a href="http://hoohoo.ncsa.uiuc.edu/cgi/interface.html">NCSA</a>┐í
  483.     ┐°║╗ ╣«╝¡░í └╓░φ, ╝÷┴ñ╟╤ ├╩╛╚└║ <a href="http://web.golux.com/coar/cgi/">Common Gateway Interface
  484.     RFC ╟┴╖╬┴º╞«</a>┐í └╓┤┘.</p>
  485.  
  486.     <p>╕▐└╧╕╡╕«╜║╞«│¬ ┤║╜║▒╫╖∞┐í ╟÷└τ ░▌░φ └╓┤┬ CGI ╣«┴ª┐í ┤δ╟╪
  487.     ┴·╣«╟╥╢º┤┬ ╣▀╗²╟╤ ╟÷╗≤░· ┐°╖í ▒Γ┤δ╟╤ ░ß░·, ╜╟┴ª╖╬ ╣▀╗²╟╤
  488.     ╟÷╗≤└╠ ╛ε╢╗░╘ ┤┘╕Ñ┴÷, ╗τ┐δ╟╧┤┬ ╝¡╣÷, CGI ╟┴╖╬▒╫╖Ñ└╗ └█╝║╟╤
  489.     ╛≡╛ε, ░í┤╔╟╧╕Θ ╟╪┤τ ─┌╡σ╕ª └┌╝╝╚≈ └√╛ε╢≤. ▒╫╖»╕Θ ╟╪░ß├Ñ└╗
  490.     ├ú▒Γ ╜¼┐÷┴°┤┘.</p>
  491.  
  492.     <p>╛╞╞──í ╝╥╜║─┌╡σ░í └▀╕°╡╟╛·┤┘░φ ╚«╜┼╟╧┴÷ ╛╩┤┬ ╟╤ CGI ┴·╣«└╗
  493.     ╛╞╞──í ╣÷▒╫ ╡Ñ└╠┼═║ú└╠╜║┐í ┐├╕«╕Θ <strong>└²┤δ╖╬</strong>
  494.     ╛╚╡╚┤┘.</p>
  495.   </div></div>
  496. <div class="bottomlang">
  497. <p><span>░í┤╔╟╤ ╛≡╛ε: </span><a href="../en/howto/cgi.html" hreflang="en" rel="alternate" title="English"> en </a> |
  498. <a href="../ja/howto/cgi.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
  499. <a href="../ko/howto/cgi.html" title="Korean"> ko </a></p>
  500. </div><div id="footer">
  501. <p class="apache">Copyright 1995-2006 The Apache Software Foundation or its licensors, as applicable.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
  502. <p class="menu"><a href="../mod/">╕≡╡Γ</a> | <a href="../mod/directives.html">┴÷╜├╛ε╡Θ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">┐δ╛ε</a> | <a href="../sitemap.html">╗τ└╠╞«╕╩</a></p></div>
  503. </body></html>